<?php

/**
 * YiiDebug class file.
 *
 * @author Sergey Malyshev <malyshev.php@gmail.com>
 */

/**
 * YiiDebug class.
 *
 * @author Sergey Malyshev <malyshev.php@gmail.com>
 * @version $Id$
 * @package YiiDebugToolbar
 * @since 1.1.7
 */
class YiiDebug extends CComponent {

    /**
     * Displays a variable.
     * This method achieves the similar functionality as var_dump and print_r
     * but is more robust when handling complex objects such as Yii controllers.
     * @param mixed $var variable to be dumped
     */
    public static function dump($var, $depth = 10) {
        is_string($var) && $var = trim($var);
        echo str_replace('&nbsp;', ' ', CVarDumper::dumpAsString($var, $depth, true));
    }

    /**
     * Writes a trace dump.
     * @param string $msg message to be logged
     */
    public static function trace($message) {
        Yii::trace(self::dump($message), 'dump');
    }

    public static function getClass($class) {
        return new ReflectionClass($class);
    }

    public static function getClassMethod($class, $name) {
        $class = self::getClass($class);
        $method = $class->getMethod($name);
        $method->setAccessible(true);
        return $method;
    }

    public static function t($str, $params = array(), $dic = 'yii-debug-toolbar') {
        return Yii::t("YiiDebug." . $dic, $str, $params);
    }

}
